其他
小米Kylin平滑迁移HBase实践
往期文章回顾:Talos网卡负载优化:基于个性化一致性哈希的负载均衡
迁移数据和切换集群期间,查询服务不中断; 项目、数据模型和cube的新增、更改、发起构建、发起合并等操作不受影响; 数据构建任务可延后调度,但不能超过天级别;
Kylin metadata不断变化,Cube预计算数据存量巨大且在持续增加; metadata可以做到秒级别同步,Cube预计算数据只能做到天级别(存量)和小时级别(增量)的同步; metadata新旧集群保证一致,Cube预计算数据迁移过程中保障可用;
通过HBase replication保证新旧集群Kylin metadata的数据同步
Kylin支持连接多个HBase集群
任务调度支持安全模式
>>>> 迁移步骤
迁移步骤
HBase团队搭建好基于HBase 2.2的独立HBase集群 HBase团队添加新老集群kylin_metadata表的异步replication; HBase团队通过snapshot + restore同步HBase其他表,并更新coprocessor; 在测试节点上回放生产环境查询请求,验证新集群HBase数据表可正常提供查询; 开启JobServer的安全模式,禁用新的任务调度; 滚动升级QueryServer,切换至兼容新旧HBase; 等待安全模式下所有任务运行完成,切换JobServer至新HBase并关闭安全模式; 等待表全部迁移完成,使用KylinHealthCheck工具检查HBase表,确认所有在用cube segment对应的HBase表存在; 检查确认后,从Kylin去除旧HBase集群配置; 旧HBase集群数据保留一段时间,最后清理删除。
>>>> Kylin metadata的一致性验证
Kylin metadata的一致性验证
>>>> 新HBase数据表的可用性验证
新HBase数据表的可用性验证
>>>> HBase2 protobuf变更带来的影响
HBase2 protobuf变更带来的影响
>>>> HBase写大文件的异常
HBase写大文件的异常
>>>> 部分数据构建任务失败
部分数据构建任务失败
后续改进
we want you
北京武汉均有职位,欢迎优秀的你加入~
联系方式:computing-hr@xiaomi.com